উদাহরণ সহ JpaRepository ব্যবহার

Java Technologies - স্প্রিং বুট জেপিএ (Spring Boot JPA) - Spring Data JPA এর বেসিক ধারণা
405

Spring Boot JPA (Java Persistence API) একটি শক্তিশালী প্রযুক্তি যা ডেটাবেস অপারেশন পরিচালনা করার জন্য ব্যবহৃত হয়। JpaRepository হল Spring Data JPA-এর একটি গুরুত্বপূর্ণ ইন্টারফেস যা ডেটাবেসে CRUD (Create, Read, Update, Delete) অপারেশনগুলো সহজভাবে সম্পাদন করতে সহায়ক। JpaRepository-র মাধ্যমে ডেটাবেস অপারেশনগুলো স্বয়ংক্রিয়ভাবে পরিচালনা করা যায়, যা কোডকে আরো পরিষ্কার এবং কমপ্লেক্স ডেটাবেস কুইরিস থেকে মুক্তি দেয়।

এখানে আমরা JpaRepository ব্যবহার করার একটি সাধারণ উদাহরণ দেখবো।


Spring Boot JPA এবং JpaRepository ব্যবহার

১. Spring Boot প্রজেক্ট তৈরি করা

Spring Boot প্রজেক্ট তৈরি করতে Spring Initializr (https://start.spring.io/) ব্যবহার করা যেতে পারে। এখানে আপনি কয়েকটি প্রাথমিক ডিপেন্ডেন্সি নির্বাচন করবেন:

  • Spring Web: REST API তৈরি করার জন্য
  • Spring Data JPA: ডেটাবেসের সাথে সংযোগ স্থাপনের জন্য
  • H2 Database (অথবা MySQL, PostgreSQL, অথবা অন্য কোনো ডাটাবেস ব্যবহার করতে পারেন)

২. Maven ডিপেন্ডেন্সি যোগ করা

Spring Boot প্রজেক্টে Spring Data JPA এবং ডেটাবেস ড্রাইভার (যেমন H2) যোগ করতে হবে। pom.xml ফাইলে নিচে ডিপেন্ডেন্সি যোগ করুন:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <scope>runtime</scope>
    </dependency>
</dependencies>

এটি Spring Data JPA এবং H2 ডাটাবেস অন্তর্ভুক্ত করবে।

৩. application.properties কনফিগারেশন

Spring Boot অ্যাপ্লিকেশনের ডাটাবেস কনফিগারেশন application.properties ফাইলে করা হয়। এখানে H2 ডাটাবেস কনফিগারেশন দেখানো হয়েছে:

spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.h2.console.enabled=true

এখানে spring.h2.console.enabled=true দিয়ে H2 ডাটাবেসের কনসোল ব্যবহার করা যাবে।

৪. Entity ক্লাস তৈরি করা

JPA Entity ক্লাস হলো সেই ক্লাস যা ডাটাবেস টেবিলের সঙ্গে সম্পর্কিত। নিচে একটি Product Entity ক্লাস তৈরি করা হয়েছে:

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class Product {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String name;
    private double price;

    // Getters and Setters
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }
}

এখানে @Entity অ্যানোটেশনটি Product ক্লাসকে JPA Entity হিসেবে চিহ্নিত করেছে এবং @Id এবং @GeneratedValue দ্বারা প্রাথমিক চাবি (id) তৈরি করা হয়েছে।

৫. JpaRepository ইন্টারফেস তৈরি করা

Spring Data JPA-এর JpaRepository ইন্টারফেস CRUD অপারেশনগুলো সরাসরি প্রদান করে। আপনাকে শুধু এই ইন্টারফেসটি ব্যবহার করতে হবে এবং কাস্টম কোড লিখতে হবে না।

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface ProductRepository extends JpaRepository<Product, Long> {
    // Custom query methods can be added here if needed
}

এখানে ProductRepository ইন্টারফেস JpaRepository থেকে উত্তরণ ঘটাচ্ছে, যার মাধ্যমে Product Entity এর উপর CRUD অপারেশন করা যাবে।

৬. Service Layer তৈরি করা

ProductService ক্লাসে Spring Data JPA ব্যবহার করে CRUD অপারেশনগুলো সম্পাদন করা হবে:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;

@Service
public class ProductService {

    @Autowired
    private ProductRepository productRepository;

    public Product saveProduct(Product product) {
        return productRepository.save(product);
    }

    public List<Product> getAllProducts() {
        return productRepository.findAll();
    }

    public Product getProductById(Long id) {
        return productRepository.findById(id).orElse(null);
    }

    public void deleteProduct(Long id) {
        productRepository.deleteById(id);
    }
}

এখানে ProductService ক্লাসের মধ্যে save, findAll, findById, এবং deleteById পদ্ধতি ব্যবহার করা হয়েছে। Spring Data JPA এগুলির জন্য স্বয়ংক্রিয়ভাবে কুয়েরি তৈরি করবে।

৭. Controller Layer তৈরি করা

Spring Boot-এ REST API তৈরি করার জন্য @RestController ব্যবহার করা হয়। নিচে একটি ProductController তৈরি করা হয়েছে যেটি ProductService ব্যবহার করবে:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/api/products")
public class ProductController {

    @Autowired
    private ProductService productService;

    @PostMapping
    public Product createProduct(@RequestBody Product product) {
        return productService.saveProduct(product);
    }

    @GetMapping
    public List<Product> getAllProducts() {
        return productService.getAllProducts();
    }

    @GetMapping("/{id}")
    public Product getProductById(@PathVariable Long id) {
        return productService.getProductById(id);
    }

    @DeleteMapping("/{id}")
    public void deleteProduct(@PathVariable Long id) {
        productService.deleteProduct(id);
    }
}

এখানে ProductController RESTful API তৈরি করা হয়েছে, যা ProductService ব্যবহার করে CRUD অপারেশন সম্পাদন করবে:

  • @PostMapping - নতুন পণ্য তৈরি।
  • @GetMapping - সমস্ত পণ্য দেখানো।
  • @GetMapping("/{id}") - নির্দিষ্ট পণ্যের তথ্য দেখানো।
  • @DeleteMapping("/{id}") - পণ্য মুছে ফেলা।

৮. Spring Boot অ্যাপ্লিকেশন চালানো

Spring Boot অ্যাপ্লিকেশন চালানোর জন্য @SpringBootApplication অ্যানোটেশন ব্যবহার করা হয়।

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringBootJpaApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootJpaApplication.class, args);
    }
}

এখানে @SpringBootApplication দ্বারা Spring Boot অ্যাপ্লিকেশন রান করবে।


Spring Data JPA এর সুবিধা

  1. CRUD অপারেশন স্বয়ংক্রিয়ভাবে: JpaRepository এর মাধ্যমে ডেটাবেসে সব ধরনের CRUD অপারেশন সহজেই করা যায়, কাস্টম কোড লিখতে হয় না।
  2. Custom Queries: Spring Data JPA আপনাকে কাস্টম কুয়েরি মেথড তৈরি করার সুযোগ দেয়, যেমন findByName, findByPriceGreaterThan, ইত্যাদি।
  3. Pagination and Sorting: ডেটা পেইজিনেশন এবং সোর্টিং সুবিধা সরাসরি JpaRepository এর মাধ্যমে পাওয়া যায়, যা বড় ডেটাসেট পরিচালনা করতে সাহায্য করে।

উপসংহার

Spring Boot JPA এবং JpaRepository এর মাধ্যমে ডেটাবেসের CRUD অপারেশনগুলো অত্যন্ত সহজ ও দ্রুতভাবে করা যায়। আপনি Spring Boot অ্যাপ্লিকেশন তৈরি করে এবং JPA ব্যবহার করে আপনার ডেটাবেস অপারেশনগুলি সহজ এবং স্কেলেবল করতে পারেন। JpaRepository এর মাধ্যমে আপনি ডেটাবেস থেকে ডেটা রিট্রাইভ, সেভ, আপডেট এবং ডিলিট করতে পারবেন কোনও অতিরিক্ত কুয়েরি কোড লেখার প্রয়োজন ছাড়াই।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...